﻿using Sidvall.Collections;

namespace Sidvall.AuthorizationManager.UI.Entities.Model
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling")]
    public partial class EntityCache : Sidvall.UI.Entities.EntityCacheBase
    {
        #region Public Members

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeCollection AuthorizationScopeCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeExportCollection AuthorizationScopeExportCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceActionCollection AuthorizationScopeResourceActionCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceActionClaimCollection AuthorizationScopeResourceActionClaimCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceItemCollection AuthorizationScopeResourceItemCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceItemClaimCollection AuthorizationScopeResourceItemClaimCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeUserCollection AuthorizationScopeUserCache { get; set; }
        
        #region Clear

        public void Clear()
        {
            this.AuthorizationScopeCache = null;
            this.AuthorizationScopeExportCache = null;
            this.AuthorizationScopeResourceActionCache = null;
            this.AuthorizationScopeResourceActionClaimCache = null;
            this.AuthorizationScopeResourceItemCache = null;
            this.AuthorizationScopeResourceItemClaimCache = null;
            this.AuthorizationScopeUserCache = null;
        }

        #endregion
        
        #endregion
        #region Constructors

        public EntityCache()
        {
        }

        #endregion
    }
}